package com.common.base.app.extras

import kotlin.math.ceil

/**
 *
 * 作者：sosou
 *
 * 版本：1.0
 *
 * 创建日期：2024/11/12
 *
 * 描述：
 *
 * 修订历史：
 *
 */
fun Double.formatDecimal(digits: Int): String {
    if (this.isNaN() || this.isInfinite()) return this.toString()

    // 将数字转换为普通字符串表示（避免科学计数法）
    val strNum = this.toBigDecimal().toPlainString()

    // 分割整数和小数部分
    val parts = strNum.split(".")
    val integerPart = parts[0]

    // 如果没有小数部分或digits为0，直接返回整数部分
    if (parts.size == 1 || digits == 0) return integerPart

    val decimalPart = parts[1]
    // 如果小数部分长度小于等于要求的位数，直接返回原数
    if (decimalPart.length <= digits) return strNum

    // 截取指定位数的小数部分
    return "$integerPart.${decimalPart.substring(0, digits)}"
}

fun Double.ceilToInt(): Int {
    return ceil(this).toInt()
}
